Learn in 10 minutes

Learn in 10 minutes

تعلم لغة R في 10 دقائق

R هي لغة برمجة وبيئة قوية للحوسبة الإحصائية، تحليل البيانات، والتصور البياني. يغطي هذا البرنامج التعليمي المفاهيم الأساسية لبدء البرمجة بلغة R.

1. البدء مع R

لنبدأ ببرنامج بسيط. افتح R أو RStudio وأدخل الكود التالي:

print("Hello, World!")

يمكنك أيضًا تشغيل هذا في وحدة التحكم R. سيكون الناتج:

[1] "Hello, World!"

يوضح هذا البرنامج البسيط وظيفة الإخراج الأساسية في R. تعرض الدالة print() معلومات نصية في وحدة التحكم.

2. بناء الجملة الأساسي والمتغيرات

تم تصميم بناء جملة R للحوسبة الإحصائية وتحليل البيانات. دعنا نستكشف تعيين المتغيرات والعمليات الأساسية.

# هذا تعليق
x <- 5  # تعيين باستخدام عامل <-
y = 10   # تعيين باستخدام عامل = (أقل شيوعًا)
print(x + y)

قواعد بناء الجملة الأساسية في R:

  • التعيين: استخدم <- لتعيين المتغيرات (مفضل) أو =
  • التعليقات: تبدأ التعليقات ذات السطر الواحد بـ #
  • الدوال: استخدم الأقواس () لاستدعاء الدوال
  • المتجهات: R متجهة - تعمل العمليات على المتجهات بأكملها

3. أنواع البيانات والهياكل

لدى R عدة أنواع بيانات وهياكل أساسية للحوسبة الإحصائية.

3.1 أنواع البيانات الأساسية

# رقمي (مزدوج)
num <- 3.14
print(class(num))

# عدد صحيح
int <- 42L
print(class(int))

# نصي (سلسلة نصية)
text <- "Hello R"
print(class(text))

# منطقي (منطقية)
flag <- TRUE
print(class(flag))

3.2 المتجهات

المتجهات هي هيكل البيانات الأساسي في R. وهي مصفوفات أحادية البعد يمكنها الاحتفاظ ببيانات رقمية أو نصية أو منطقية.

# إنشاء متجهات
numeric_vector <- c(1, 2, 3, 4, 5)
character_vector <- c("apple", "banana", "cherry")
logical_vector <- c(TRUE, FALSE, TRUE)

# عمليات المتجهات
print(numeric_vector * 2)  # ضرب كل عنصر في 2
print(numeric_vector + 1)  # إضافة 1 إلى كل عنصر
print(length(numeric_vector))  # الحصول على طول المتجه

3.3 القوائم

القوائم هي حاويات مرنة يمكنها الاحتفاظ بعناصر من أنواع مختلفة.

# إنشاء قائمة
my_list <- list(
  name = "John",
  age = 30,
  scores = c(85, 92, 78),
  active = TRUE
)

# الوصول إلى عناصر القائمة
print(my_list$name)
print(my_list[["age"]])
print(my_list[[3]])

3.4 إطارات البيانات

إطارات البيانات هي هيكل البيانات الأهم لتحليل البيانات في R. تشبه الجداول مع صفوف وأعمدة.

# إنشاء إطار بيانات
df <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 30, 35),
  score = c(88, 92, 85)
)

# عرض إطار البيانات
print(df)
print(str(df))  # هيكل إطار البيانات
print(summary(df))  # إحصائيات موجزة

4. العمليات الأساسية

توفر R مجموعة غنية من العوامل للعمليات الرياضية والمنطقية.

# العمليات الحسابية
a <- 10
b <- 3

print(a + b)  # جمع
print(a - b)  # طرح
print(a * b)  # ضرب
print(a / b)  # قسمة
print(a ^ b)  # رفع للقوة
print(a %% b) # باقي القسمة
print(a %/% b) # قسمة صحيحة

# عمليات المقارنة
print(a > b)   # أكبر من
print(a == b)  # يساوي
print(a != b)  # لا يساوي
print(a <= b)  # أصغر من أو يساوي

# العمليات المنطقية
print(TRUE & FALSE)  # AND
print(TRUE | FALSE)  # OR
print(!TRUE)         # NOT

5. هياكل التحكم

توفر R هياكل تحكم قياسية لتدفق البرنامج.

5.1 عبارات if

age <- 20

if (age >= 18) {
  print("بالغ")
} else if (age >= 13) {
  print("مراهق")
} else {
  print("طفل")
}

5.2 حلقات for

# التكرار على متجه
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
  print(fruit)
}

# استخدام التسلسل
for (i in 1:5) {
  print(paste("رقم:", i))
}

5.3 حلقات while

count <- 1
while (count <= 5) {
  print(count)
  count <- count + 1
}

6. الدوال

الدوال في R هي كتل كود قابلة لإعادة الاستخدام لمهام محددة.

# تعريف الدالة الأساسية
calculate_area <- function(length, width) {
  area <- length * width
  return(area)
}

# استدعاء الدالة
result <- calculate_area(5, 3)
print(result)

# دالة مع معلمات افتراضية
greet <- function(name = "Guest") {
  return(paste("Hello,", name))
}

print(greet("Alice"))
print(greet())  # يستخدم المعلمة الافتراضية

7. معالجة البيانات

تتفوق R في معالجة البيانات. دعنا نستكشف بعض العمليات الأساسية.

# إطار بيانات نموذجي
students <- data.frame(
  name = c("Alice", "Bob", "Charlie", "Diana"),
  math_score = c(85, 92, 78, 95),
  science_score = c(88, 90, 82, 96),
  grade = c("A", "A", "B", "A")
)

# فرز البيانات
print(students[students$math_score > 85, ])  # صفوف حيث math_score > 85
print(students[, c("name", "math_score")])   # أعمدة محددة

# إضافة أعمدة جديدة
students$total_score <- students$math_score + students$science_score
students$average_score <- students$total_score / 2

print(students)

8. التصور البياني

لدى R قدرات تصور بياني قوية، خاصة مع ggplot2.

# الرسم الأساسي (R الأساسي)
# إنشاء بعض البيانات النموذجية
x <- 1:10
y <- x^2

# مخطط مبعثر
plot(x, y, main = "مخطط مبعثر", xlab = "X", ylab = "Y", col = "blue", pch = 16)

# مخطط خطي
plot(x, y, type = "l", main = "مخطط خطي", xlab = "X", ylab = "Y", col = "red")

# مخطط تكراري
hist(rnorm(100), main = "مخطط تكراري", xlab = "القيم", col = "lightblue")

8.1 استخدام ggplot2 (إذا كان مثبتًا)

# تثبيت وتحميل ggplot2 إذا لم يكن مثبتًا بالفعل
# install.packages("ggplot2")
library(ggplot2)

# إنشاء إطار بيانات نموذجي
plot_data <- data.frame(
  category = c("A", "B", "C", "D"),
  value = c(25, 40, 30, 35)
)

# إنشاء مخطط شريطي
ggplot(plot_data, aes(x = category, y = value)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(title = "مثال على المخطط الشريطي", x = "الفئة", y = "القيمة") +
  theme_minimal()

9. التحليل الإحصائي

تم تصميم R للحوسبة الإحصائية. إليك بعض الدوال الإحصائية الأساسية.

# بيانات نموذجية
data <- c(23, 45, 67, 34, 56, 78, 89, 12, 45, 67)

# إحصائيات أساسية
print(mean(data))     # المتوسط
print(median(data))   # الوسيط
print(sd(data))       # الانحراف المعياري
print(var(data))      # التباين
print(min(data))      # القيمة الدنيا
print(max(data))      # القيمة القصوى
print(summary(data))  # الملخص الخماسي

# الارتباط
x <- 1:10
y <- x + rnorm(10)  # إضافة بعض الضوضاء
print(cor(x, y))    # معامل الارتباط

# الانحدار الخطي
model <- lm(y ~ x)
print(summary(model))

10. العمل مع الملفات

توفر R دوال لقراءة وكتابة الملفات.

# الكتابة إلى ملف
write.csv(students, "students.csv", row.names = FALSE)

# القراءة من ملف
# read_data <- read.csv("students.csv")
# print(read_data)

# العمل مع الملفات النصية
# writeLines(c("سطر 1", "سطر 2", "سطر 3"), "example.txt")
# text_content <- readLines("example.txt")
# print(text_content)

11. الحزم والمكتبات

تأتي قوة R من نظام الحزم الواسع الخاص بها.

# تثبيت الحزم
# install.packages("dplyr")  # لمعالجة البيانات
# install.packages("ggplot2") # للتصور البياني

# تحميل الحزم
library(dplyr)
library(ggplot2)

# استخدام dplyr لمعالجة البيانات
# students %>%
#   filter(math_score > 85) %>%
#   select(name, math_score) %>%
#   arrange(desc(math_score))

12. معالجة الأخطاء

توفر R آليات لمعالجة الأخطاء.

# معالجة الأخطاء الأساسية
tryCatch({
  result <- 10 / 0
  print(result)
}, error = function(e) {
  print(paste("حدث خطأ:", e$message))
}, finally = {
  print("هذا ينفذ دائمًا")
})

# استخدام try()
result <- try(10 / 0, silent = TRUE)
if (inherits(result, "try-error")) {
  print("فشلت القسمة")
}

13. مواضيع متقدمة

13.1 دوال عائلة apply

دوال عائلة apply قوية للعمليات المتجهة.

# إنشاء مصفوفة
mat <- matrix(1:12, nrow = 3, ncol = 4)
print(mat)

# تطبيق الدوال
print(apply(mat, 1, mean))  # متوسطات الصفوف
print(apply(mat, 2, sum))   # مجموعات الأعمدة

# lapply للقوائم
my_list <- list(a = 1:5, b = 6:10, c = 11:15)
print(lapply(my_list, mean))  # متوسط كل عنصر قائمة

# sapply (نسخة مبسطة)
print(sapply(my_list, mean))

13.2 معالجة النصوص

text <- "Hello R Programming"

print(toupper(text))    # التحويل إلى أحرف كبيرة
print(tolower(text))    # التحويل إلى أحرف صغيرة
print(nchar(text))      # عد الأحرف
print(substr(text, 1, 5))  # استخراج جزء نصي

# استخدام حزمة stringr (إذا كانت مثبتة)
# library(stringr)
# str_split(text, " ")  # تقسيم النص

13.3 التاريخ والوقت

# التاريخ والوقت الحاليين
current_time <- Sys.time()
print(current_time)

# تنسيق التواريخ
formatted_date <- format(current_time, "%Y-%m-%d")
print(formatted_date)

# حساب التواريخ
today <- Sys.Date()
future_date <- today + 30
print(future_date)

14. أفضل الممارسات

إليك بعض النصائح لكتابة كود R أفضل:

  • استخدم أسماء متغيرات ذات معنى
  • علق على كودك بشكل مناسب
  • استخدم العمليات المتجهة بدلاً من الحلقات عندما يكون ذلك ممكنًا
  • حمّل الحزم في بداية نصك البرمجي
  • استخدم مسافة بادئة متسقة (يوصى بـ 2 مسافة)
  • اختبر كودك ببيانات نموذجية
  • استخدم التحكم في الإصدار لمشاريعك

15. الخطوات التالية

لمواصلة تعلم R:

  1. الممارسة: اعمل على مشاريع تحليل بيانات صغيرة
  2. استكشاف الحزم: تعلم dplyr، ggplot2، tidyr، والحزم الأساسية الأخرى
  3. الموارد عبر الإنترنت: استخدم وثائق R، Stack Overflow، و R-bloggers
  4. الكتب: “R for Data Science” بواسطة Hadley Wickham
  5. الدورات: خذ دورات عبر الإنترنت عن تحليل البيانات باستخدام R

R هي أداة قوية للحوسبة الإحصائية وتحليل البيانات. مع الممارسة، ستتمكن من إجراء معالجات بيانات معقدة، وإنشاء تصورات بيانية جميلة، وإجراء تحليلات إحصائية متطورة.